<!DOCTYPE html>

<html>

<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    table {
      border-collapse: collapse;
      border-spacing: 0;
      border: 1px solid #c0c0c0;
      width: 500px;
      margin: 100px auto;
      text-align: center;
    }

    th {
      background-color: #09c;
      font: bold 16px "微软雅黑";
      color: #fff;
      height: 24px;
    }

    td {
      border: 1px solid #d0d0d0;
      color: #404060;
      padding: 10px;
    }

    .allCheck {
      width: 80px;
    }
  </style>
</head>

<body>
  <table>
    <tr>
      <th class="allCheck">
        <input type="checkbox" name="" id="checkAll"> <span class="all">全选</span>
      </th>
      <th>商品</th>
      <th>商家</th>
      <th>价格</th>
    </tr>
    <tr>
      <td>
        <input type="checkbox" name="check" class="ck">
      </td>
      <td>小米手机</td>
      <td>小米</td>
      <td>￥1999</td>
    </tr>
    <tr>
      <td>
        <input type="checkbox" name="check" class="ck">
      </td>
      <td>小米净水器</td>
      <td>小米</td>
      <td>￥4999</td>
    </tr>
    <tr>
      <td>
        <input type="checkbox" name="check" class="ck">
      </td>
      <td>小米电视</td>
      <td>小米</td>
      <td>￥5999</td>
    </tr>
  </table>
  <script>
    // 大选影响小选
    const checkAll = document.querySelector('#checkAll')
    const ck = document.querySelectorAll('.ck')
    checkAll.addEventListener('click', function () {
      // console.log(checkAll.checked);
      // 吧为数组里面的每一项遍历出来 改变他们的选中状态
      for (let i = 0; i < ck.length; i++) {
        ck[i].checked = checkAll.checked
      }

    })
    // 小选影响全选
    for (let i = 0; i < ck.length; i++) {
      ck[i].addEventListener('click', function () {
        let ii = document.querySelectorAll('.ck:checked').length === ck.length
        checkAll.checked = ii
      })
    }





    // // 获取大选框的元素 和小选框的 checked
    // const checkAll = document.querySelector('#checkAll')
    // const ck = document.querySelectorAll('.ck')
    // // 拿到大选款的选中状态 给大选框 添加点击事件
    // checkAll.addEventListener('click', function () {
    //   console.log(checkAll.checked);
    //   // 把大选款的选中状态 给小选框
    //   for (let i = 0; i < ck.length; i++) {
    //     ck[i].checked = checkAll.checked
    //   }

    // })
    // // for (let i = 0; i < ck.length; i++) {
    // //   ck[i].addEventListener('click', function () {
    // //     checkAll.checked = document.querySelectorAll('.ck:checked').length === ck.length
    // //   })
    // // }
    // for (let i of ck) {
    //   i.addEventListener('click', function () {
    //     let ii = document.querySelectorAll('.ck:checked').length === 3
    //     ii = ii ? checkAll.checked = true : checkAll.checked = false
    //   })
    // }


  </script>
</body>

</html>